package cn.fldong.service;

import cn.fldong.model.Student;
import java.sql.SQLException;
import java.util.List;

/**
 * StudentService接口，定义学生相关的业务逻辑操作
 */
public interface StudentService {
    /**
     * 根据学生ID查询学生
     * @param studentId 学生ID
     * @return 学生对象
     * @throws SQLException 数据库操作异常
     */
    Student getStudentById(String studentId) throws SQLException;
    
    /**
     * 根据姓名查询学生
     * @param name 学生姓名
     * @return 学生列表
     * @throws SQLException 数据库操作异常
     */
    List<Student> getStudentsByName(String name) throws SQLException;
    
    /**
     * 根据班级ID查询学生
     * @param classId 班级ID
     * @return 学生列表
     * @throws SQLException 数据库操作异常
     */
    List<Student> getStudentsByClassId(String classId) throws SQLException;
    
    /**
     * 查询所有学生
     * @return 学生列表
     * @throws SQLException 数据库操作异常
     */
    List<Student> getAllStudents() throws SQLException;
    
    /**
     * 添加新学生
     * @param student 学生对象
     * @return 添加成功返回true，否则返回false
     * @throws SQLException 数据库操作异常
     */
    boolean addStudent(Student student) throws SQLException;
    
    /**
     * 更新学生信息
     * @param student 学生对象
     * @return 更新成功返回true，否则返回false
     * @throws SQLException 数据库操作异常
     */
    boolean updateStudent(Student student) throws SQLException;
    
    /**
     * 删除学生
     * @param studentId 学生ID
     * @return 删除成功返回true，否则返回false
     * @throws SQLException 数据库操作异常
     */
    boolean deleteStudent(String studentId) throws SQLException;
    
    /**
     * 验证学生ID是否已存在
     * @param studentId 学生ID
     * @return 存在返回true，否则返回false
     * @throws SQLException 数据库操作异常
     */
    boolean studentIdExists(String studentId) throws SQLException;
}